﻿///////////////////////////////////////////////////////////////
// This is generated code. 
//////////////////////////////////////////////////////////////
// Code is generated using LLBLGen Pro version: 3.1
// Code is generated on: Thursday, June 23, 2011 1:28:24 PM
// Code is generated using templates: SD.TemplateBindings.SharedTemplates.NET20
// Templates vendor: Solutions Design.
// Templates version: 
//////////////////////////////////////////////////////////////
using System;
using SD.LLBLGen.Pro.ORMSupportClasses;

namespace MyHealthOnline.Dal.Generated.HelperClasses
{
	
	// __LLBLGENPRO_USER_CODE_REGION_START AdditionalNamespaces
	// __LLBLGENPRO_USER_CODE_REGION_END
	
	
	/// <summary>Singleton implementation of the FieldInfoProvider. This class is the singleton wrapper through which the actual instance is retrieved.</summary>
	/// <remarks>It uses a single instance of an internal class. The access isn't marked with locks as the FieldInfoProviderBase class is threadsafe.</remarks>
	internal static class FieldInfoProviderSingleton
	{
		#region Class Member Declarations
		private static readonly IFieldInfoProvider _providerInstance = new FieldInfoProviderCore();
		#endregion

		/// <summary>Dummy static constructor to make sure threadsafe initialization is performed.</summary>
		static FieldInfoProviderSingleton()
		{
		}

		/// <summary>Gets the singleton instance of the FieldInfoProviderCore</summary>
		/// <returns>Instance of the FieldInfoProvider.</returns>
		public static IFieldInfoProvider GetInstance()
		{
			return _providerInstance;
		}
	}

	/// <summary>Actual implementation of the FieldInfoProvider. Used by singleton wrapper.</summary>
	internal class FieldInfoProviderCore : FieldInfoProviderBase
	{
		/// <summary>Initializes a new instance of the <see cref="FieldInfoProviderCore"/> class.</summary>
		internal FieldInfoProviderCore()
		{
			Init();
		}

		/// <summary>Method which initializes the internal datastores.</summary>
		private void Init()
		{
			this.InitClass( (14 + 0));
			InitAdministratorEntityInfos();
			InitAppProposalEntityInfos();
			InitConsultEntityInfos();
			InitConsultQuestionEntityInfos();
			InitDateQuestionEntityInfos();
			InitDisciplineEntityInfos();
			InitMessageEntityInfos();
			InitMultiChoiceQuestionEntityInfos();
			InitOpenQuestionEntityInfos();
			InitPatientEntityInfos();
			InitQuestionEntityInfos();
			InitQuestionnaireEntityInfos();
			InitQuestionnaireQuestionEntityInfos();
			InitSpecialistEntityInfos();

			this.ConstructElementFieldStructures(InheritanceInfoProviderSingleton.GetInstance());
		}

		/// <summary>Inits AdministratorEntity's FieldInfo objects</summary>
		private void InitAdministratorEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(AdministratorFieldIndex), "AdministratorEntity");
			this.AddElementFieldInfo("AdministratorEntity", "Address", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Address, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "City", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.City, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "Country", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Country, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "Email", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Email, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)AdministratorFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("AdministratorEntity", "Name", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Name, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "Password", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Password, 255, 0, 0);
			this.AddElementFieldInfo("AdministratorEntity", "Phone", typeof(System.String), false, false, false, true,  (int)AdministratorFieldIndex.Phone, 255, 0, 0);
		}
		/// <summary>Inits AppProposalEntity's FieldInfo objects</summary>
		private void InitAppProposalEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(AppProposalFieldIndex), "AppProposalEntity");
			this.AddElementFieldInfo("AppProposalEntity", "ConsultId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)AppProposalFieldIndex.ConsultId, 0, 0, 10);
			this.AddElementFieldInfo("AppProposalEntity", "Description", typeof(System.String), false, false, false, true,  (int)AppProposalFieldIndex.Description, 1024, 0, 0);
			this.AddElementFieldInfo("AppProposalEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)AppProposalFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("AppProposalEntity", "NextWebConsultDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)AppProposalFieldIndex.NextWebConsultDate, 0, 0, 0);
		}
		/// <summary>Inits ConsultEntity's FieldInfo objects</summary>
		private void InitConsultEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(ConsultFieldIndex), "ConsultEntity");
			this.AddElementFieldInfo("ConsultEntity", "Conclusion", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.Conclusion, 50, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "ConsultDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)ConsultFieldIndex.ConsultDate, 0, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "CreationDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)ConsultFieldIndex.CreationDate, 0, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "DueToBeSent", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.DueToBeSent, 10, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)ConsultFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("ConsultEntity", "InitialComment", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.InitialComment, 255, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "LatestContact", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)ConsultFieldIndex.LatestContact, 0, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "LetterStatus", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.LetterStatus, 50, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "PatientId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)ConsultFieldIndex.PatientId, 0, 0, 10);
			this.AddElementFieldInfo("ConsultEntity", "PersonalNotes", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.PersonalNotes, 1024, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "SpecialistId", typeof(System.String), false, true, false, true,  (int)ConsultFieldIndex.SpecialistId, 50, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "Status", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.Status, 255, 0, 0);
			this.AddElementFieldInfo("ConsultEntity", "Summary", typeof(System.String), false, false, false, true,  (int)ConsultFieldIndex.Summary, 1024, 0, 0);
		}
		/// <summary>Inits ConsultQuestionEntity's FieldInfo objects</summary>
		private void InitConsultQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(ConsultQuestionFieldIndex), "ConsultQuestionEntity");
			this.AddElementFieldInfo("ConsultQuestionEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)ConsultQuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("ConsultQuestionEntity", "ConsultId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)ConsultQuestionFieldIndex.ConsultId, 0, 0, 10);
			this.AddElementFieldInfo("ConsultQuestionEntity", "QuestionId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)ConsultQuestionFieldIndex.QuestionId, 0, 0, 10);
			this.AddElementFieldInfo("ConsultQuestionEntity", "Text", typeof(System.String), false, false, false, true,  (int)ConsultQuestionFieldIndex.Text, 1024, 0, 0);
		}
		/// <summary>Inits DateQuestionEntity's FieldInfo objects</summary>
		private void InitDateQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(DateQuestionFieldIndex), "DateQuestionEntity");
			this.AddElementFieldInfo("DateQuestionEntity", "Answer", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)DateQuestionFieldIndex.Answer, 0, 0, 0);
			this.AddElementFieldInfo("DateQuestionEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)DateQuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("DateQuestionEntity", "QuestionId", typeof(System.Int32), false, true, false, false,  (int)DateQuestionFieldIndex.QuestionId, 0, 0, 10);
		}
		/// <summary>Inits DisciplineEntity's FieldInfo objects</summary>
		private void InitDisciplineEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(DisciplineFieldIndex), "DisciplineEntity");
			this.AddElementFieldInfo("DisciplineEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)DisciplineFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("DisciplineEntity", "Title", typeof(System.String), false, false, false, false,  (int)DisciplineFieldIndex.Title, 50, 0, 0);
			this.AddElementFieldInfo("DisciplineEntity", "Informations", typeof(System.String), false, false, false, true,  (int)DisciplineFieldIndex.Informations, 2147483647, 0, 0);
		}
		/// <summary>Inits MessageEntity's FieldInfo objects</summary>
		private void InitMessageEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(MessageFieldIndex), "MessageEntity");
			this.AddElementFieldInfo("MessageEntity", "ConsultId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)MessageFieldIndex.ConsultId, 0, 0, 10);
			this.AddElementFieldInfo("MessageEntity", "CreationDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)MessageFieldIndex.CreationDate, 0, 0, 0);
			this.AddElementFieldInfo("MessageEntity", "FromSpecialist", typeof(System.Boolean), false, false, false, false,  (int)MessageFieldIndex.FromSpecialist, 0, 0, 0);
			this.AddElementFieldInfo("MessageEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)MessageFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("MessageEntity", "Reply", typeof(System.String), false, false, false, false,  (int)MessageFieldIndex.Reply, 50, 0, 0);
			this.AddElementFieldInfo("MessageEntity", "ResponseDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)MessageFieldIndex.ResponseDate, 0, 0, 0);
			this.AddElementFieldInfo("MessageEntity", "Status", typeof(System.String), false, false, false, true,  (int)MessageFieldIndex.Status, 50, 0, 0);
			this.AddElementFieldInfo("MessageEntity", "Text", typeof(System.String), false, false, false, false,  (int)MessageFieldIndex.Text, 50, 0, 0);
		}
		/// <summary>Inits MultiChoiceQuestionEntity's FieldInfo objects</summary>
		private void InitMultiChoiceQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(MultiChoiceQuestionFieldIndex), "MultiChoiceQuestionEntity");
			this.AddElementFieldInfo("MultiChoiceQuestionEntity", "Answer", typeof(System.String), false, false, false, true,  (int)MultiChoiceQuestionFieldIndex.Answer, 255, 0, 0);
			this.AddElementFieldInfo("MultiChoiceQuestionEntity", "Choices", typeof(System.String), false, false, false, true,  (int)MultiChoiceQuestionFieldIndex.Choices, 255, 0, 0);
			this.AddElementFieldInfo("MultiChoiceQuestionEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)MultiChoiceQuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("MultiChoiceQuestionEntity", "PatientRemarks", typeof(System.String), false, false, false, true,  (int)MultiChoiceQuestionFieldIndex.PatientRemarks, 255, 0, 0);
			this.AddElementFieldInfo("MultiChoiceQuestionEntity", "QuestionId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)MultiChoiceQuestionFieldIndex.QuestionId, 0, 0, 10);
		}
		/// <summary>Inits OpenQuestionEntity's FieldInfo objects</summary>
		private void InitOpenQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(OpenQuestionFieldIndex), "OpenQuestionEntity");
			this.AddElementFieldInfo("OpenQuestionEntity", "Answer", typeof(System.String), false, false, false, true,  (int)OpenQuestionFieldIndex.Answer, 255, 0, 0);
			this.AddElementFieldInfo("OpenQuestionEntity", "Id", typeof(System.Int32), true, false, true, false,  (int)OpenQuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("OpenQuestionEntity", "QuestionId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)OpenQuestionFieldIndex.QuestionId, 0, 0, 10);
		}
		/// <summary>Inits PatientEntity's FieldInfo objects</summary>
		private void InitPatientEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(PatientFieldIndex), "PatientEntity");
			this.AddElementFieldInfo("PatientEntity", "Address", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Address, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Birthday", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)PatientFieldIndex.Birthday, 0, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "City", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.City, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Country", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Country, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Email", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Email, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)PatientFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("PatientEntity", "Name", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Name, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Number", typeof(System.Int32), false, false, false, false,  (int)PatientFieldIndex.Number, 0, 0, 10);
			this.AddElementFieldInfo("PatientEntity", "Password", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Password, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Phone", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Phone, 255, 0, 0);
			this.AddElementFieldInfo("PatientEntity", "Sex", typeof(System.String), false, false, false, true,  (int)PatientFieldIndex.Sex, 8, 0, 0);
		}
		/// <summary>Inits QuestionEntity's FieldInfo objects</summary>
		private void InitQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(QuestionFieldIndex), "QuestionEntity");
			this.AddElementFieldInfo("QuestionEntity", "AnswerDate", typeof(Nullable<System.DateTime>), false, false, false, true,  (int)QuestionFieldIndex.AnswerDate, 0, 0, 0);
			this.AddElementFieldInfo("QuestionEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)QuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("QuestionEntity", "IsDatabaseQuestion", typeof(System.Boolean), false, false, false, false,  (int)QuestionFieldIndex.IsDatabaseQuestion, 0, 0, 0);
			this.AddElementFieldInfo("QuestionEntity", "QuestionDate", typeof(System.DateTime), false, false, false, false,  (int)QuestionFieldIndex.QuestionDate, 0, 0, 0);
			this.AddElementFieldInfo("QuestionEntity", "QuestionText", typeof(System.String), false, false, false, true,  (int)QuestionFieldIndex.QuestionText, 50, 0, 0);
			this.AddElementFieldInfo("QuestionEntity", "Type", typeof(System.String), false, false, false, false,  (int)QuestionFieldIndex.Type, 50, 0, 0);
		}
		/// <summary>Inits QuestionnaireEntity's FieldInfo objects</summary>
		private void InitQuestionnaireEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(QuestionnaireFieldIndex), "QuestionnaireEntity");
			this.AddElementFieldInfo("QuestionnaireEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)QuestionnaireFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("QuestionnaireEntity", "QuestionId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)QuestionnaireFieldIndex.QuestionId, 0, 0, 10);
		}
		/// <summary>Inits QuestionnaireQuestionEntity's FieldInfo objects</summary>
		private void InitQuestionnaireQuestionEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(QuestionnaireQuestionFieldIndex), "QuestionnaireQuestionEntity");
			this.AddElementFieldInfo("QuestionnaireQuestionEntity", "Id", typeof(System.Int32), true, false, false, false,  (int)QuestionnaireQuestionFieldIndex.Id, 0, 0, 10);
			this.AddElementFieldInfo("QuestionnaireQuestionEntity", "QuestionId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)QuestionnaireQuestionFieldIndex.QuestionId, 0, 0, 10);
			this.AddElementFieldInfo("QuestionnaireQuestionEntity", "QuestionnaireId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)QuestionnaireQuestionFieldIndex.QuestionnaireId, 0, 0, 10);
		}
		/// <summary>Inits SpecialistEntity's FieldInfo objects</summary>
		private void InitSpecialistEntityInfos()
		{
			this.AddFieldIndexEnumForElementName(typeof(SpecialistFieldIndex), "SpecialistEntity");
			this.AddElementFieldInfo("SpecialistEntity", "Address", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Address, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Birthday", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Birthday, 10, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "City", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.City, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Country", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Country, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "DisciplineId", typeof(Nullable<System.Int32>), false, true, false, true,  (int)SpecialistFieldIndex.DisciplineId, 0, 0, 10);
			this.AddElementFieldInfo("SpecialistEntity", "Email", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Email, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Id", typeof(System.String), true, false, false, false,  (int)SpecialistFieldIndex.Id, 50, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Name", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Name, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Organization", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Organization, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Password", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Password, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Phone", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Phone, 255, 0, 0);
			this.AddElementFieldInfo("SpecialistEntity", "Sex", typeof(System.String), false, false, false, true,  (int)SpecialistFieldIndex.Sex, 8, 0, 0);
		}
		
	}
}




